home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 32 / Mac Magazin and MacEasy Magazine CD - Issue 32.iso / Grafik & Text / OzTeX3.0 / Metafont / Inputs / ec / exiligtb.mf < prev    next >
Text File  |  1997-03-16  |  8KB  |  262 lines

  1. % exiligtb.mf
  2. %
  3. % (c) Copyright 1995, 1996, 1997 J"org Knappen
  4. % (c) Copyright 1990, 1992 Norbert Schwarz
  5. %
  6. % This file is part of ecfonts version 1.0
  7. %
  8. % Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
  9. % copyrite.txt for further information
  10. %
  11. % You find some documentation in ecdoc.tex (needs LaTeX2e)
  12. %
  13. % Content:
  14. %
  15. %   ligtable and kerning for italic fonts
  16. %
  17. %      This file should not be called for monospaced fonts !
  18. %
  19. %  The following ligatures are integrated:
  20. %
  21. %   fi
  22. %   fl
  23. %   ff
  24. %   ffi
  25. %   ffl
  26. %
  27. %   --
  28. %   ---
  29. %   -<hyphenchar>
  30. %   >>
  31. %   <<
  32. %   ``
  33. %   ''
  34. %   ,,
  35. %   !` and ?`
  36.  
  37. version_check(1,0);  % |version_check| was introduced in dc1.3
  38.  
  39. ligtable
  40.     "f":   "i"=:oct"034",
  41.            "f"=:oct"033",
  42.            "l"=:oct"035",
  43.            "'" kern itc#,
  44.            "`" kern itc#,
  45.            oct"020" kern itc#,
  46.            oct"021" kern itc#,
  47.            "?" kern itc#,
  48.            "!" kern itc#,
  49.            ")" kern itc#,
  50.            "]" kern itc#;
  51. ligtable 
  52.    oct"033":       % ff
  53.           "i"=:oct"036",
  54.           "l"=:oct"037",
  55.           "'" kern itc#,
  56.           "`" kern itc#,
  57.           oct"020" kern itc#,
  58.           oct"021" kern itc#,
  59.           "?" kern itc#,
  60.           "!" kern itc#,
  61.           ")" kern itc#,
  62.           "]" kern itc#;
  63. ligtable
  64.     "`":  "`"=:oct"020",
  65.           oct"020" kern 2u#,
  66.           "?" kern 2u#,
  67.           "!" kern 2u#;
  68.  
  69. ligtable
  70.     "'":  "'"=:oct"021",
  71.           oct"021" kern 2u#,
  72.           "?" kern 2u#,
  73.           "!" kern 2u#;
  74.  
  75. ligtable
  76.     "-":  "-" =: oct"025",
  77.      oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
  78.  
  79. ligtable
  80.     oct"025": "-"=:oct"026";  % "---"  => emdash
  81.  
  82. ligtable "<": "<" =: oct"023";     % "<<"
  83. ligtable ">": ">" =: oct"024";     % ">>"
  84. ligtable ",": "," =: oct"022";     % ",,"
  85. ligtable "!": "`" =: oct"275";     % spanish shriek
  86. ligtable "?": "`" =: oct"276";     % spanish query
  87. %
  88. %
  89. def lig_o_table (expr k) =
  90.              "o" kern k,  oct"256" kern k, oct"362" kern k, oct"363" kern k,
  91.                           oct"364" kern k, oct"365" kern k, oct"366" kern k,
  92.                           oct"367" kern k, oct"370" kern k
  93. enddef;
  94. %
  95. %
  96. def lig_a_table (expr k) =
  97.            "a" kern k,    oct"240" kern k, oct"241" kern k, oct"340" kern k,
  98.                           oct"341" kern k, oct"342" kern k, oct"342" kern k,
  99.                           oct"343" kern k, oct"344" kern k, oct"345" kern k,
  100.                           oct"346" kern k
  101. enddef;
  102. %
  103. def lig_c_table (expr k) =
  104.            "c" kern k,   oct"242" kern k, oct"243" kern k, oct"347" kern k
  105. enddef;
  106. %
  107. def lig_e_table (expr k)=
  108.              "e" kern k, oct"245" kern k, oct"246" kern k, oct"350" kern k,
  109.                          oct"351" kern k, oct"352" kern k, oct"353" kern k
  110. enddef;
  111. %
  112. def lig_n_table (expr k)=
  113.              "n" kern k, oct"253" kern k, oct"254" kern k, oct"255" kern k,
  114.              oct"361" kern k
  115. enddef;
  116. %
  117. def lig_u_table (expr k)=
  118.              "u" kern k, oct"266" kern k, oct"267" kern k, oct"371" kern k,
  119.                          oct"372" kern k, oct"373" kern k, oct"374" kern k
  120. enddef;
  121. %
  122. def lig_A_table (expr k) =
  123.              "A" kern k, oct"200" kern k, oct"201" kern k, oct"300" kern k,
  124.               oct"301" kern k, oct"302" kern k, oct"303" kern k,
  125.               oct"304" kern k, oct"305" kern k, oct"306" kern k
  126. enddef;
  127. %
  128. def lig_O_table (expr k) =
  129.          "O" kern k,
  130.                   oct"216" kern k,  oct"322" kern k,  oct"323" kern k,
  131.                   oct"324" kern k,  oct"325" kern k,
  132.                   oct"326" kern k,  oct"327" kern k,  oct"330" kern k
  133. enddef;
  134. %
  135. def lig_CGQ_table (expr k)=
  136.              "C" kern k, "G" kern k, oct"202" kern k, oct"203" kern k,
  137.                     oct"207" kern k, oct"307" kern k, "Q" kern k
  138. enddef;
  139. %
  140. def lig_U_table (expr k) =
  141.          "U" kern k, oct"226" kern k, oct"227" kern k, oct"331" kern k,
  142.                      oct"332" kern k, oct"333" kern k, oct"334" kern k
  143. enddef;
  144. %
  145. def lig_cA_table =
  146.              "A": oct"200": oct"300": oct"301": oct"302":
  147.              oct"303": oct"304": oct"305"
  148. enddef;
  149. %
  150. def lig_cO_table =
  151.              "O": oct"216": oct"322": oct"323": oct"324": oct"325":
  152.                   oct"326": oct"330"
  153. enddef;
  154.  
  155. k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
  156. %
  157. ligtable boundarychar:
  158.    oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
  159.    oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;
  160.  
  161. ligtable oct"022":
  162.    oct"015" kern 2u#, "," kern 2u#,
  163.          oct"015":
  164.    oct"022" kern 2u#,
  165.    "v" kern kk#, "w" kern kk#, 
  166.    "T" kern kk#, "V" kern kkk#, "W" kern kkk#,
  167.    "Y" kern kk#,  oct"230" kern kk#, oct"335" kern kk#,
  168.    lig_O_table(k#), lig_CGQ_table(k#),
  169.    boundarychar kern -kk#;
  170.  
  171. ligtable oct"020":
  172.    oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;
  173.  
  174. ligtable oct"021":
  175.    oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;
  176.  
  177. ligtable oct"024": % ">>"
  178.    "." kern kk#, "," kern kk#;
  179.  
  180. ligtable
  181.         "d": oct"244": "w": "l": oct"250": oct"251":   
  182.                 "l" kern +u#, oct"250" kern +u#, oct"251" kern +u#;
  183. ligtable
  184.         "F": "W": "V":    
  185.                 "o" kern kk#,
  186.                 "e" kern kk#, oct"246" kern kk#,
  187.                 "u" kern kk#,
  188.                 "r" kern kk#, "n" kern kk#, "v" kern kk#,
  189.                 "a" kern kk#, oct"241" kern kk#,
  190.                 lig_A_table(kkk#),
  191.         "X":    lig_O_table(k#),
  192.                 lig_CGQ_table(k#);
  193.  
  194. ligtable 
  195.        "K": "v" kern k#,
  196.             "w" kern k#,
  197.             lig_O_table(k#),
  198.             lig_CGQ_table(k#);
  199.  
  200. ligtable
  201.         "T": oct"224": oct"225":
  202.                 "y" kern kk#,
  203.         "Y": oct"335": oct"230":
  204.                 "e" kern kk#,
  205.                 "o" kern kk#,
  206.                 "r" kern kk#,
  207.                 "a" kern kk#,
  208.                 "u" kern kk#,
  209.         "P":   
  210.                 lig_A_table(kk#);
  211. ligtable
  212.         lig_cO_table:
  213.         "D": oct"204": oct"320":
  214.                 "X" kern k#,
  215.                 "W" kern k#,
  216.                 lig_A_table(k#),
  217.                 "V" kern k#,
  218.                 "Y" kern k#, oct"230" kern k#, oct"335" kern k#;
  219. ligtable
  220.         lig_cA_table:
  221.                 "y" kern k#, oct"270" kern k#, oct"375" kern k#,
  222.         oct"201": "R": oct"217":
  223.                 lig_n_table(k#),
  224.                 "l" kern k#, oct"250" kern k#, oct"251" kern k#,
  225.                 "r" kern k#,
  226.                 lig_u_table(k#),
  227.                 "m" kern k#,
  228.                 "t" kern k#, oct"264" kern k#, oct"265" kern k#,
  229.                 "i" kern k#, oct"355" kern k#,
  230.                 "h" kern k#,
  231.                 "b" kern k#,
  232.                 "k" kern k#,
  233.                 "v" kern k#,
  234.                 "w" kern k#,
  235.                 lig_CGQ_table(k#),
  236.                 lig_O_table(k#),
  237.                 lig_U_table(k#),
  238.         "L": oct"210": oct"211":
  239.                 "T" kern kk#, oct"224" kern kk#, oct"225" kern kk#,
  240.                 "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
  241.                 "V" kern kkk#,
  242.                 "W" kern kkk#,
  243.         "b":
  244.         "c": oct"242": oct"243":
  245.         "e": oct"245": oct"246": oct"350": oct"351": oct"352": oct"353":
  246.         "o": oct"362": oct"363": oct"364": oct"365": oct"366":
  247.         oct"376":
  248.         "p":
  249.         "r":    lig_e_table(-u#),
  250.                 lig_a_table(-u#),
  251.                 lig_o_table(-u#),
  252.                 "d" kern -u#,  oct"236" kern -u#,
  253.                 lig_c_table(-u#),
  254.                 "g" kern -u#,  oct"247" kern -u#,
  255.                 "q" kern -u#;
  256. ligtable
  257.         "n":    "'" kern kkk#;
  258.  
  259. ligtable oct"252": "'" kern -k#;
  260.  
  261. endinput;
  262.